G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION, atk_action_interface_init))
-static void
-gtk_entry_accessible_finalize (GObject *object)
-{
- GtkEntryAccessible *entry = GTK_ENTRY_ACCESSIBLE (object);
-
- if (entry->action_idle_handler)
- {
- g_source_remove (entry->action_idle_handler);
- entry->action_idle_handler = 0;
- }
- G_OBJECT_CLASS (gtk_entry_accessible_parent_class)->finalize (object);
-}
-
static AtkStateSet*
gtk_entry_accessible_ref_state_set (AtkObject *accessible)
{
static void
gtk_entry_accessible_class_init (GtkEntryAccessibleClass *klass)
{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
GtkWidgetAccessibleClass *widget_class = (GtkWidgetAccessibleClass*)klass;
- gobject_class->finalize = gtk_entry_accessible_finalize;
-
class->ref_state_set = gtk_entry_accessible_ref_state_set;
class->get_index_in_parent = gtk_entry_accessible_get_index_in_parent;
class->initialize = gtk_entry_accessible_initialize;
return ret_val;
}
-static gboolean
-idle_do_action (gpointer data)
-{
- GtkEntryAccessible *entry;
- GtkWidget *widget;
-
- entry = GTK_ENTRY_ACCESSIBLE (data);
- entry->action_idle_handler = 0;
- widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (entry));
- if (widget == NULL /* State is defunct */ ||
- !gtk_widget_get_sensitive (widget) || !gtk_widget_get_visible (widget))
- return FALSE;
-
- gtk_widget_activate (widget);
-
- return FALSE;
-}
-
static gboolean
gtk_entry_accessible_do_action (AtkAction *action,
gint i)
{
- GtkEntryAccessible *entry;
GtkWidget *widget;
- entry = GTK_ENTRY_ACCESSIBLE (action);
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (action));
if (widget == NULL)
return FALSE;
if (i != 0)
return FALSE;
- if (entry->action_idle_handler)
- return FALSE;
-
- entry->action_idle_handler = gdk_threads_add_idle (idle_do_action, entry);
+ gtk_widget_activate (widget);
return TRUE;
}